[JS/백준]{그리디}(1931) 회의실 배정

202210월 01

백준 문제 링크

문제 설명

우선 시작 시간을 기준으로 오름차순을 정렬을 해준다. 이 상태에서 회의실을 사용해버리면

시작시간은 빠른데 끝나는시간이 엄청늦는 경우가 발생 할수가있기 때문에 끝나는 시간을 기준으로

한번 더 정렬을 해주면 회의실을 이용할수있는 시간을 최적화가 가능하다.


코드

const line = require("fs").readFileSync("./input.txt", "utf8");
let inputData = line.trim().split("\n");

const n = +inputData[0];

const timeList = [];

for (let i = 1; i < n + 1; i++) {
  const [startTime, finishTime] = inputData[i].split(" ").map(Number);
  timeList.push([startTime, finishTime]);
}

timeList.sort((a, b) => a[0] - b[0]);
timeList.sort((a, b) => a[1] - b[1]);

let cnt = 0;
let last = 0;
console.log(timeList);
timeList.forEach((val) => {
  const [startTime, finishTime] = val;
  if (startTime >= last) {
    cnt++;
    last = finishTime;
    console.log(startTime, finishTime);
  }
});

console.log(cnt);